// import { Inject, Post, Get, Body, Query } from '@midwayjs/core';
// import { CoolController, BaseController } from '@cool-midway/core'; 
// // import { AutomationWeatherDataService } from '../../service/app/weather_data';

// /**
//  * 管理端-气象数据监控
//  */
// @CoolController({
//   api: ['add', 'delete', 'update', 'info', 'list', 'page'],
//   // entity: AutomationWeatherDataEntity,
//   service: AutomationWeatherDataService,
//   pageQueryOp: {
//     keyWordLikeFields: ['a.cityCode', 'a.cityName', 'a.weather'],
//     fieldEq: ['a.cityCode'],
//     where: async (ctx) => {
//       const { collectTime, temperature, humidity } = ctx.request.body;
//       const conditions = [];
//       if (collectTime && collectTime.length === 2) {
//         conditions.push([`a.collectTime BETWEEN '${collectTime[0]}' AND '${collectTime[1]}'`]);
//       }
//       if (temperature && temperature.length === 2) {
//         conditions.push([`a.temperature BETWEEN ${temperature[0]} AND ${temperature[1]}`]);
//       }
//       if (humidity && humidity.length === 2) {
//         conditions.push([`a.humidity BETWEEN ${humidity[0]} AND ${humidity[1]}`]);
//       }
//       return conditions;
//     },
//     select: ['a.*'],
//     join: [],
//   },
// })
// export class AdminAutomationWeatherDataController extends BaseController {
//   @Inject()
//   automationWeatherDataService: AutomationWeatherDataService;

//   /**
//    * 获取城市气象历史数据
//    */
//   @Get('/history', { summary: '获取城市气象历史数据' })
//   async getCityWeatherHistory(@Query('cityCode') cityCode: string, @Query('limit') limit: number = 100) {
//     const history = await this.automationWeatherDataService.getCityWeatherHistory(cityCode, limit);
//     return this.ok(history);
//   }

//   /**
//    * 获取最新气象数据
//    */
//   @Get('/latest', { summary: '获取最新气象数据' })
//   async getLatestWeather(@Query('cityCode') cityCode?: string) {
//     const latestWeather = await this.automationWeatherDataService.getLatestWeather(cityCode);
//     return this.ok(latestWeather);
//   }

//   /**
//    * 获取气象数据统计
//    */
//   @Get('/statistics', { summary: '获取气象数据统计' })
//   async getStatistics(@Query('cityCode') cityCode?: string) {
//     const statistics = await this.automationWeatherDataService.getStatistics(cityCode);
//     return this.ok(statistics);
//   }

//   /**
//    * 获取温度趋势
//    */
//   @Get('/temperatureTrend', { summary: '获取温度趋势' })
//   async getTemperatureTrend(@Query('cityCode') cityCode: string, @Query('hours') hours: number = 24) {
//     const trend = await this.automationWeatherDataService.getTemperatureTrend(cityCode, hours);
//     return this.ok(trend);
//   }

//   /**
//    * 获取湿度趋势
//    */
//   @Get('/humidityTrend', { summary: '获取湿度趋势' })
//   async getHumidityTrend(@Query('cityCode') cityCode: string, @Query('hours') hours: number = 24) {
//     const trend = await this.automationWeatherDataService.getHumidityTrend(cityCode, hours);
//     return this.ok(trend);
//   }

//   /**
//    * 获取空气质量趋势
//    */
//   @Get('/airQualityTrend', { summary: '获取空气质量趋势' })
//   async getAirQualityTrend(@Query('cityCode') cityCode: string, @Query('hours') hours: number = 24) {
//     const trend = await this.automationWeatherDataService.getAirQualityTrend(cityCode, hours);
//     return this.ok(trend);
//   }

//   /**
//    * 批量更新气象数据
//    */
//   @Post('/batchUpdate', { summary: '批量更新气象数据' })
//   async batchUpdateWeather(@Body() params: { weatherData: any[] }) {
//     const { weatherData } = params;
    
//     for (const data of weatherData) {
//       await this.automationWeatherDataService.updateWeatherData(data);
//     }
    
//     return this.ok('批量更新成功');
//   }

//   /**
//    * 同步气象数据
//    */
//   @Post('/sync', { summary: '同步气象数据' })
//   async syncWeatherData(@Body() params: { cityCodes?: string[] }) {
//     const { cityCodes } = params;
    
//     // 这里可以实现从第三方气象API同步数据的逻辑
//     const result = await this.automationWeatherDataService.syncWeatherData(cityCodes);
    
//     return this.ok({
//       message: '同步完成',
//       syncCount: result.syncCount,
//       failedCount: result.failedCount,
//       details: result.details
//     });
//   }

//   /**
//    * 清理历史数据
//    */
//   @Post('/cleanup', { summary: '清理历史数据' })
//   async cleanupHistory(@Body() params: { days: number; cityCode?: string }) {
//     const { days, cityCode } = params;
//     const cutoffDate = new Date();
//     cutoffDate.setDate(cutoffDate.getDate() - days);
    
//     const result = await this.automationWeatherDataService.cleanupHistory(cutoffDate, cityCode);
//     return this.ok(`清理了 ${result.affected} 条历史记录`);
//   }

//   /**
//    * 获取气象预警信息
//    */
//   @Get('/alerts', { summary: '获取气象预警信息' })
//   async getWeatherAlerts(@Query('cityCode') cityCode?: string) {
//     const alerts = await this.automationWeatherDataService.getWeatherAlerts(cityCode);
//     return this.ok(alerts);
//   }

//   /**
//    * 设置气象预警规则
//    */
//   @Post('/alertRules', { summary: '设置气象预警规则' })
//   async setAlertRules(@Body() params: {
//     cityCode: string;
//     rules: {
//       type: string; // temperature, humidity, pm25, aqi
//       condition: string; // >, <, >=, <=, ==
//       threshold: number;
//       enabled: boolean;
//       alertLevel: string; // info, warning, danger
//     }[]
//   }) {
//     const { cityCode, rules } = params;
    
//     // 这里可以实现预警规则的保存逻辑
//     await this.automationWeatherDataService.setAlertRules(cityCode, rules);
    
//     return this.ok('预警规则设置成功');
//   }

//   /**
//    * 导出气象数据报告
//    */
//   @Post('/export', { summary: '导出气象数据报告' })
//   async exportReport(@Body() params: { 
//     cityCodes?: string[]; 
//     startTime?: string; 
//     endTime?: string;
//     fields?: string[] // temperature, humidity, weather, pm25, aqi等
//   }) {
//     const { cityCodes, startTime, endTime, fields } = params;
    
//     const reportData = await this.automationWeatherDataService.getReportData(
//       cityCodes, 
//       startTime, 
//       endTime, 
//       fields
//     );
    
//     return this.ok({
//       message: '报告生成成功',
//       data: reportData,
//       downloadUrl: '/api/automation/weather-data/download-report'
//     });
//   }

//   /**
//    * 获取城市列表
//    */
//   @Get('/cities', { summary: '获取城市列表' })
//   async getCities() {
//     const cities = await this.automationWeatherDataService.getCities();
//     return this.ok(cities);
//   }

//   /**
//    * 获取气象数据对比
//    */
//   @Post('/compare', { summary: '获取气象数据对比' })
//   async compareWeatherData(@Body() params: {
//     cityCodes: string[];
//     startTime: string;
//     endTime: string;
//     field: string; // temperature, humidity, pm25等
//   }) {
//     const { cityCodes, startTime, endTime, field } = params;
    
//     const compareData = await this.automationWeatherDataService.compareWeatherData(
//       cityCodes,
//       startTime,
//       endTime,
//       field
//     );
    
//     return this.ok(compareData);
//   }
// }